package com.cc.model

import com.mybatisflex.annotation.Column
import com.mybatisflex.annotation.Table
import java.time.LocalDateTime

/**
 * 采集脚本表 实体类。
 *
 * @author cc
 * @since 1.0
 */
@Table(value = "k_script")
class Script {
    /**
     * 脚本ID
     */
    @Column(value = "id")
    var id: String = ""

    /**
     * 分类ID（外键ID）
     */
    @Column(value = "category_id")
    var categoryId: String = ""

    /**
     * 脚本名称
     */
    @Column(value = "script_name")
    var scriptName: String = ""

    /**
     * 任务描述
     */
    @Column(value = "script_description")
    var scriptDescription: String = ""

    /**
     * job,trans
     */
    @Column(value = "script_type")
    var scriptType: String = ""

    /**
     * 脚本保存路径（可以是资源库中的路径也可以是服务器中保存作业文件的路径）
     */
    @Column(value = "script_path")
    var scriptPath: String = ""

    /**
     * 作业的资源库ID
     */
    @Column(value = "script_repository_id")
    var scriptRepositoryId: String = ""

    /**
     * 定时策略（外键ID）
     */
    @Column(value = "script_quartz")
    var scriptQuartz: String = ""

    /**
     * 同步策略(T+n)
     */
    @Column(value = "sync_strategy")
    var syncStrategy: String = ""

    /**
     * 日志级别(Basic，Detailed，Error，Debug，Minimal，Rowlevel）
     */
    @Column(value = "script_log_level")
    var scriptLogLevel: String = ""

    /**
     * 状态（1：正在运行；2：已停止）
     */
    @Column(value = "script_status")
    var scriptStatus: String = ""

    /**
     * 添加时间
     */
    @Column(value = "add_time")
    var addTime: LocalDateTime? = null

    /**
     * 添加者
     */
    @Column(value = "add_user")
    var addUser: String = ""

    /**
     * 编辑时间
     */
    @Column(value = "edit_time")
    var editTime: LocalDateTime? = null

    /**
     * 编辑者
     */
    @Column(value = "edit_user")
    var editUser: String = ""

    /**
     * 是否删除（0：存在；1：删除）
     */
    @Column(value = "del_flag")
    var delFlag: Int = 0

    /**
     * 参数
     */
    @Column(value = "script_params")
    var scriptParams: String = ""

    /**
     * 执行类型（rep：资源库；file：文件；ftp：FTP）
     */
    @Column(value = "execute_type")
    var executeType: String = ""

    /**
     * 重试时间(S)
     */
    @Column(value = "fail_retry_time")
    var failRetryTime: Int? = null

    /**
     * 重试脚本路径
     */
    @Column(value = "fail_retry_script_path")
    var failRetryScriptPath: String = ""

    /**
     * 重试参数
     */
    @Column(value = "fail_retry_params")
    var failRetryParams: String = ""

    /**
     * 重试脚本ID
     */
    @Column(value = "fail_retry_script_id")
    var failRetryScriptId: String = ""

    /**
     * 重试类型（1，当前任务，2其他任务）
     */
    @Column(value = "fail_retry_type")
    var failRetryType: Int? = null

    /**
     * 重试脚本名称
     */
    @Column(value = "fail_retry_script_name")
    var failRetryScriptName: String = ""
}
